
#include "register/tilingdata_base.h"

namespace optiling {

BEGIN_TILING_DATA_DEF(BroadCastTiling)
  TILING_DATA_FIELD_DEF(int32_t, y_dimNum);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, y_dims);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, x1_dims);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, x2_dims);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, y_sumDims);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, x1_sumDims);
  TILING_DATA_FIELD_DEF_ARR(int32_t, 20, x2_sumDims);
END_TILING_DATA_DEF;

REGISTER_TILING_DATA_CLASS(BroadCastTilingOp, BroadCastTiling)


BEGIN_TILING_DATA_DEF(PowsTilingData)
  TILING_DATA_FIELD_DEF(uint32_t, size);
  TILING_DATA_FIELD_DEF(uint32_t, tilingKey);
  TILING_DATA_FIELD_DEF(uint32_t, smallCoreDataNum);   //小核处理的总数据量大小
  TILING_DATA_FIELD_DEF(uint32_t, finalSmallTileNum);  //小核上数据总搬运次数
  TILING_DATA_FIELD_DEF(uint32_t, tileDataNum);        //单核单次搬运处理的数据量大小
  TILING_DATA_FIELD_DEF(uint32_t, smallTailDataNum);   //小核最后一次搬运处理的数据量大小
  TILING_DATA_FIELD_DEF(uint32_t, tailBlockNum);       //大核的个数
  TILING_DATA_FIELD_DEF_STRUCT(BroadCastTiling, BCT); 
END_TILING_DATA_DEF;

REGISTER_TILING_DATA_CLASS(Pows, PowsTilingData)

}
